#ifndef OPCODE_H_
#define OPCODE_H_

typedef enum _optcode {
     OC_ADD  = 0x01,
     OC_ADDI = 0x02,

     OC_NOOP = 0xFF,
#ifdef SERIOUS_64
     OC_ADDI64 = 0xCC;
#endif
} opcode;

typedef enum _opcode_type {
     OT_NONE = 0,// (8 bit wide instruction)

     OT_I, //immediate(24-bits) (32 bit wide instruction)
     OT_DD, //destination (16 bit wide instruction)

     OT_I_DD, //immediate(18-bits), destination
     OT_SD_DD, //source, destination (24 bit wide instruction)

     OT_I_I_DD, //immediate(9-bits), immediate(9-bits), destination
     OT_I_SD_DD, //immediate(12-bits), source, destination
     OT_SD_I_DD, //source, immediate(12-bits), destination

     OT_SD_SD_DD, //source, source, destination
     OT_SD_SD_SD_DD, //source, source, source, destination
#ifdef SERIOUS_64
     
#endif
} opcode_type;
/*
static s_byte opcode_length[] = {
	0x00
};

static opcode_type opcode_types[] = {
	OT_NONE
};
*/
#endif /*OPCODE_H_*/
